package com.qing.design.patterns.state.example.demo2.activity.event;


import com.qing.design.patterns.state.example.demo2.activity.Result;
import com.qing.design.patterns.state.example.demo2.activity.Status;

public abstract class State {


    /**
     * 活动审批
     * @param activityId
     * @param currentStatus
     * @return
     */
    public  abstract  Result arraignment(String activityId, Enum<Status> currentStatus);


    /**
     * 审批通过
     * @param activityId
     * @param currentStatus
     * @return
     */
    public abstract  Result checkPass(String activityId,Enum<Status> currentStatus);


    /**
     * 审批拒绝
     * @param activityId
     * @param currentStatus
     * @return
     */
    public abstract  Result checkRefuse(String activityId,Enum<Status> currentStatus);


    /**
     * 审批撤销
     * @param activityId
     * @param currentStatus
     * @return
     */
    public abstract  Result checkRevoke(String activityId,Enum<Status> currentStatus);


    /**
     * 活动关闭
     * @param activityId
     * @param currentStatus
     * @return
     */
    public abstract  Result close(String activityId,Enum<Status> currentStatus);


    /**
     * 活动开启
     * @param activityId
     * @param currentStatus
     * @return
     */
    public abstract  Result open(String activityId,Enum<Status> currentStatus);


    /**
     * 活动执行
     * @param activityId
     * @param currentStatus
     * @return
     */
    public abstract  Result doing(String activityId,Enum<Status> currentStatus);

}
